var express = require('express');


// 随机字符串
const random = require('string-random');
var router = express.Router();
// 请求路由
const UserModel = require('../models/UserModel');
// 返回格式
const BizResult = require("../config/BizResult");
// 密码加密
const bcrypt = require('../utils/bcrypt');
// 生成token
const JwtUtil = require('../utils/jwt');

// 解析请求体的中间件
const bodyParser = require('body-parser');
// 解析 querystring 格式请求体的中间件 【url编码】
let urlParser = bodyParser.urlencoded({ extended: false });
// 解析 JSON 格式请求体的中间件
let jsonParser = bodyParser.json();


/* 登录账号 */
router.post('/login', urlParser, function (req, res, next) {
  const { phone, password } = req.body;
  if (!phone) return res.status(500).send(BizResult.fail('请输入手机号'));
  if (!password) return res.status(500).send(BizResult.fail('请输入密码'));
  UserModel.findOne({ phone }).then((data, err) => {
    // 失败
    if (err) return res.send(BizResult.fail(err));
    // 验证密码
    if (data.password) {
      // 对比密码
      if (!bcrypt(password, data.password, 'bi')) {
        res.status(500).send(BizResult.fail('密码错误'));
        return false;
      }
    }
    // 配置token
    let jwt = new JwtUtil({ username: data.username })
    let token = jwt.generateToken();
    console.log(token)
    let obj = {
      username: data.username,
      phone: data.phone,
      token: token,
    }
    res.send(BizResult.success(obj));
  })
});


/* 注册账号 */
router.post('/register', urlParser, function (req, res, next) {
  const { phone, password, username } = req.body;
  if (!phone || phone == '') {
    res.status(500).send(BizResult.fail('请输入手机号'));
    return false;
  };
  if (!password || password == '') {
    res.status(500).send(BizResult.fail('请输入密码'));
    return false;
  };
  UserModel.findOne({ phone }).then((data, err) => {
    if (err) return res.send(BizResult.fail(err));
    if (!data || data.length == 0) {//判断数据库没有账号数据
      UserModel.create(req.body).then((data, err) => {//注册
        if (err) return res.send(BizResult.fail(err));
        res.send(BizResult.success('注册成功'));
      })
    } else {
      res.status(500).send(BizResult.fail('该手机号已注册'));
    }
  })

});





module.exports = router;
